// modules/Circle/include/logs/Logs.h

#include <spdlog/spdlog.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <memory>
#include <string>
#include <chrono>
#include <iomanip>
#include <sstream>
#include <filesystem>
#include <mutex>
#include <unordered_map>

#include "../../Circle.h"

namespace Circle {
    namespace Logs {
        extern std::string logPattern;
        extern spdlog::level::level_enum logLevel;
        extern std::string logFilename;
        std::shared_ptr<spdlog::logger> init();
        std::shared_ptr<spdlog::logger> init(const std::string& logFilename);
        void setLogPattern(const std::string& pattern);
        void setLogLevel(spdlog::level::level_enum level);
        void setLogFileNameRule(const std::string& rule);
    }
}
